package com.itheima.d2_reflect;

/*
     目标：获取Class对象。

     获取Class对象的三种方式
        1, Class c1 = 类名.class
        2, 调用Class提供方法：public static Class forName(String package)；
        3, Object提供的方法： public Class getClass()；  Class c3 = 对象.getClass();
 */
public class Test1Class {


    public static void main(String[] args) throws ClassNotFoundException {
        //获取Class对象
        //1.类名.Classclass com.itheima.d2_reflect.Cat
        Class catClass = Cat.class;
        System.out.println(catClass);

        //2.调用class提供的方法forName
        Class aClass = Class.forName("com.itheima.d2_reflect.Cat");
        System.out.println(aClass);
        //三个方法获取的都是同一个class对象类名
        System.out.println(catClass==aClass);

        //3.Object提供的方法，对象.class
        Cat cat = new Cat();
        Class aClass1 = cat.getClass();
        System.out.println(aClass1);
        System.out.println(aClass1==aClass&&aClass1==catClass);
        //通过getname获取类名
        String name = aClass1.getName();
        System.out.println(name);
        System.out.println(cat);
        //获取单独的类名，没有包名
        String simpleName = catClass.getSimpleName();
        System.out.println(simpleName);


    }
}
